package com.mindbox.mueblesalpes.presentacion.reportes;


import com.mindbox.mueblesalpes.negocio.entity.Ciudad;
import com.mindbox.mueblesalpes.negocio.reportes.IReportes;
import com.mindbox.mueblesalpes.negocio.reportes.ReporteVenta;
import com.mindbox.mueblesalpes.presentacion.utils.Mensajes;
import com.mindbox.mueblesalpes.presentacion.utils.RequestParameters;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;

/**
 * BackingBean
 * @author Jaimoto
 */

public class ReporteVentasBean {

    private ReporteVenta reporte;
    @EJB
    private IReportes reportesService;
   
    /** Creates a new instance of ReporteVentasBean */
    public ReporteVentasBean() {
    }

    /**
     * Realiza la carga de los datos iniciales del reporte
     */
    public void loadReport(){
        try {
            HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
            String idCiudad = (String) request.getAttribute(RequestParameters.ciudad.name());
            Ciudad ciudad = new Ciudad();
            if(idCiudad != null){
                ciudad.setIdCiudad(Long.valueOf(idCiudad));
                reporte = reportesService.generarReporteVentas((Date)request.getAttribute(RequestParameters.fechaIni.name()),(Date)request.getAttribute(RequestParameters.fechaFin.name()), ciudad);
            }
        } catch (Exception ex) {
            Logger.getLogger(ReporteVentasBean.class.getName()).log(Level.SEVERE, null, ex);
        }
    }



    /**
     * Obtiene la referencia del reporte
     * @return
     */
    public ReporteVenta getReporte() {
        if(reporte == null)
            loadReport();
        return reporte;
    }

    /**
     * Asigna la referencia del reporte
     * @param reporte
     */
    public void setReporte(ReporteVenta reporte) {
        this.reporte = reporte;
    }

    

}
